package main

import (
	"net/http"
	"video_server/api/defs"
	"video_server/api/handlers"
	"video_server/api/session"
)

// ------  鉴权操作   -----------

// HEADER_FIELD_SESSION 是 sesson 的标记字段
var HEADER_FIELD_SESSION = "X-Session-Id"

// HEADER_FIELD_USERNAME 是 session 的用户名字段
var HEADER_FIELD_USERNAME = "X-User-Name"

// validateUserSession 校验session
func validateUserSession(r *http.Request) bool {
	// 获取请求头中的数据
	sid := r.Header.Get(HEADER_FIELD_SESSION)
	if len(sid) == 0 {
		return false
	}

	uname, ok := session.IsSessionExpired(sid)
	if ok {
		return false
	}

	r.Header.Add(HEADER_FIELD_USERNAME, uname)
	return true

}

// ValidateUser 校验用户
func ValidateUser(w http.ResponseWriter, r *http.Request) bool {

	// 获取请求头中的数据
	uname := r.Header.Get(HEADER_FIELD_USERNAME)
	if len(uname) == 0 {
		handlers.SendErrorResponse(w, defs.ErrorNotAuthUser)
		return false
	}

	return true
}
